# # -*- coding:utf-8
# 5376. 非递增顺序的最小子序列 显示英文描述
# 用户通过次数1
# 用户尝试次数4
# 通过次数1
# 提交次数4
# 题目难度Easy
# 给你一个数组 nums，请你从中抽取一个子序列，满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。
#
# 如果存在多个解决方案，只需返回 长度最小 的子序列。如果仍然有多个解决方案，则返回 元素之和最大 的子序列。
#
# 与子数组不同的地方在于，「数组的子序列」不强调元素在原数组中的连续性，也就是说，它可以通过从数组中分离一些（也可能不分离）元素得到。
#
# 注意，题目数据保证满足所有约束条件的解决方案是 唯一 的。同时，返回的答案应当按 非递增顺序 排列。

from typing import List
class Solution:
    def minSubsequence(self, nums: List[int]) -> List[int]:

        summ = sum(nums)
        lis = sorted(nums,reverse=True)
        print(lis)
        res = []
        resSum = 0
        for i in range(nums.__len__()):
            if resSum > summ-resSum:
                return res
            else:
                res.append(lis[i])
                resSum += lis[i]


        return res

res = Solution().minSubsequence([4,3,10,9,8])
print(res)
